package com.mcp.converter.domain.checker;

import lombok.Data;

/**
 * 不兼容点详情类
 * 提供不兼容点的详细信息，包括原因、建议等
 */
@Data
public class IncompatibilityDetail {
    
    /**
     * 不兼容点
     */
    private IncompatiblePoint incompatiblePoint;
    
    /**
     * 不兼容原因
     */
    private String reason;
    
    /**
     * 不兼容影响
     */
    private String impact;
    
    /**
     * 转换建议
     */
    private String suggestion;
    
    /**
     * 参考文档
     */
    private String reference;
    
    /**
     * 严重程度
     */
    private Severity severity;
    
    /**
     * 严重程度枚举
     */
    public enum Severity {
        /**
         * 严重 - 会导致SQL执行失败
         */
        CRITICAL,
        
        /**
         * 高 - 会导致SQL执行结果不一致
         */
        HIGH,
        
        /**
         * 中 - 可能导致性能问题
         */
        MEDIUM,
        
        /**
         * 低 - 不影响功能，但不符合最佳实践
         */
        LOW
    }
    
    public IncompatibilityDetail() {
    }
    
    public IncompatibilityDetail(IncompatiblePoint incompatiblePoint) {
        this.incompatiblePoint = incompatiblePoint;
    }
    
    public IncompatibilityDetail(IncompatiblePoint incompatiblePoint, String reason, String suggestion) {
        this(incompatiblePoint);
        this.reason = reason;
        this.suggestion = suggestion;
    }
}
